package com.yoshino.flyweight;

/**
 * @author yoshino
 **/
public class Test {
    public static void main(String[] args) {
        //如果Integer.value0f(x) × 在-128 --- 127直接，就是使用享元模式返回，如果不在
        //范围类，则仍然new

        //小结：
        //1. 在value0f方法中，先判断值是否在IntegerCache中，如果不在，就创建新的Integer(new);否则,就直接从缓存池返回
        //2. value0f方法，就使用到享元模式
        //3. 如果是 valueOf 的值在 -128 到 127 之间，它返回的速度比 new 快

        Integer x = Integer.valueOf(127);
        Integer y = new Integer(127);
        Integer z = Integer.valueOf(127);
        Integer w = new Integer(127);
        System.out.println(x.equals(y));//t
        System.out.println(x == y);//f
        System.out.println(x == z);//t
        System.out.println(w == x); //f
        System.out.println(w == y); //f

        Integer x1 = Integer.valueOf(200);
        Integer x2 = Integer.valueOf(200);
        System.out.println(x1 == x2);//f

    }
}
